Information available to people becomes easily dispersed to different devices and information systems. Part of the information available can be located in files in fixed networks on servers or personal computers, for example. On the other hand, terminal devices of various cellular networks, laptop computers or palm computers contain information, files and programs that are important to the user. Maintaining them in a way that the latest created version of each piece of information, file or program is always the one currently in use, is a challenging task. The updating and at the same time unifying of information, files and programs in different devices is generally called synchronization of data.
One possible way of performing synchronization is for the user to perform it separately on each device. Although data transfer from one device and information system to another can function entirely electronically, it always requires action from the user in this case. The user must remember to synchronize the information of different devices frequently enough. If synchronization is not performed often enough, the user can end up in a situation in which there are too many differences in the information contained by different information systems. In the worst case, the user does not know which one of the files is the latest and/or most correct. Possibly it can be checked from the creation date of the information, but it is a laborious way, especially if there are a large number of files to be checked. Besides, the latest creation date of the file does not always ensure the correctness of all information, if information is maintained in more than two devices or files.
A subroutine included in the program, which reminds of the updates, is utilized in the updating of computer software. It can be called a program-specific reminder. This reminder gives the user an update prompt when a sufficient number of days has passed since the previous prompt or update. The user can usually either accept the update or reject it. In some types of software, such a slow manner of updating is sufficient. Such softwares are, for example, various text, image or presentation softwares.
However, there are types of information, files and software in which correctness and currentness are desirable properties. Examples of such files and programs are various personal calendars and virus protection programs. They are useful to the user only when the information contained by them complies with the latest supplementary information that exists about them. There are many sad examples of deficiencies in the updating of virus protection programs. Because of the deficiencies of virus protection programs especially in mobile, wireless devices, entire company networks have become so badly contaminated that they have had to be closed down in order to destroy the viruses and worms spread in the network. Such an event is bad publicity for the company whose network has to be closed down even for a short time because of a virus problem in it.
In principle, it would be possible to update the information, file or software in the terminal device always when the terminal device is started. However, this solution increases the need for data transfer so much that especially in wireless data transfer systems, the limited data transfer capacity becomes a problem. Then the program in the terminal device starts slowly, because transferring the updated version to the terminal device is slow through a limited data transfer channel. The slowness of the data transfer channel is further increased by the transfer of unnecessary updates to such terminal devices, which already have the latest updated version of the information, file or program.
The above examples illustrate the importance of managing up-to-date information in the prior art information networks. This is particularly true in the management of information and softwares contained by various mobile devices. Such management of information and files is generally called Software Management. Software management has the following characteristics, for example: One terminal device or server can remote control at least one other device by it. It can also be used for complementing a program or a part of it in some terminal device by new information or parts of the program located in another device. The existence of the licenses, or rights of use for the programs are also managed by it. Software Management can also comprise matters related to Digital Right Management.
Open Mobile Alliance (OMA) has published specifications, which concern the updating and maintenance of software in mobile devices. The specifications OMA DM (Device Management) and OMA DS (Data Synchronization) describe some possible ways of implementing data transfer and up-to-date file maintenance in mobile devices. These specifications describe the SynchML (Synchronization Mark up Language) protocol and how it is utilized in the actual implementation of synchronization. However, the standards do not define how the starting of the synchronization could be implemented without any action from the user as a kind of automatic operation, when the application is started in the mobile terminal.
A good and simple software management procedure could thus make it easier to maintain and use programs in information networks and especially in various mobile terminal devices. By it, most software updates could be carried out as remote work of IT personnel or entirely without their contribution. In addition, a good software management procedure could use the data transfer network so that it would not stress the data transfer network by unnecessary file transfer.